package com.hoson.example.extensions.java.util.List;

import manifold.ext.rt.api.Extension;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;


/**
 * List 扩展方法
 *
 * @author chenxueyong
 * @date 2023/03/15
 */
@Extension
public class ListExt {

    /**
     * 【扩展方法】返回只包含一个元素的不可变 List
     *
     * @param element 元素
     * @return {@link List}<{@link E}>
     * @deprecated 已弃用，List.of(E element)
     */
    @Deprecated
    @Extension
    public static <E> List<E> xOf(E element) {
        return Collections.singletonList(element);
    }

    /**
     * 【扩展方法】返回包含多个元素的不可变 List
     * @param elements 元素
     * @return {@link List}<{@link E}>
     * @deprecated 已弃用，List.of(E... elements)
     */
    @Deprecated
    @Extension @SafeVarargs
    public static <E> List<E> xOf(E... elements) {
        return Collections.unmodifiableList(Arrays.asList(elements));
    }
}